void clanguageexample1()
{
	printf("使用 printf() 输出 Hello, World!。\n");
	printf("Hello, World!\n");
}

void clanguageexample2()
{
	int number = 123;

	printf("使用 printf()格式化输出整数。\n");
	// printf() 输出字符串
	printf("输入一个整数: ");

	// scanf() 格式化输入
	scanf("%d", &number);

	// printf() 显示格式化输入
	printf("你输入的整数是: %d\n", number);
}

void clanguageexample3()
{
	printf("使用 printf()输出字符串。\n");

	char c;  // 声明 char 变量
	c = 'A'; // 定义 char 变量
	printf("c 的值为 %c\n", c);
}

void clanguageexample4()
{
	printf("使用 printf()输出浮点数。\n");

	float f; // 声明浮点数变量

	f = 12.001234f; // 定义浮点数变量

	printf("f 的值为 %f", f);
}

void clanguageexample5()
{
	printf("使用 printf()输出双精度数。\n");

	double d = 12.0213123;

	printf("双精度数：%e\n", d);
}

void clanguageexample6()
{
	printf("使用 scanf() 来接收输入， printf()格式化输出整数。\n");
	printf("输入两个整数（用空格隔开）：");

	int i, j;
	scanf("%d %d", &i, &j);

	printf("%d + %d = %d\n", i, j, i + j);
}

void clanguageexample7()
{
	printf("输入两个浮点数，计算乘积。\n");
	printf("输入两个浮点数（用空格隔开）：");

	double i, j;
	scanf("%lf %lf", &i, &j);

	// 输出结果， %.2lf 保留两位小数
	printf("%lf * %lf = %.2lf\n", i, j, i * j);
}

void clanguageexample8()
{
	printf("字符串转ascll码\n");

	char c;
	printf("请输入一个字符：");
	scanf("%c", &c);

	printf("%c 的 ascll 码是：%d\n", c, c);
}

void clanguageexample9()
{
	printf("两数相除，如果有余数，输出余数。\n");
	printf("请输入被除数与除数（用空格隔开）：");

	int x, y;
	scanf("%d %d", &x, &y);

	printf("%d 与 %d 的商为：%d\n", x, y, x / y);
	printf("%d 与 %d 的余数为：%d\n", x, y, x % y);
}

void clanguageexample10()
{
	printf("比较两个数\n");
	printf("请输入两个浮点数（空格隔开）：");

	double a, b;
	scanf("%lf %lf", &a, &b);

	if (a > b)
	{
		printf("%lf 大于 %lf\n", a, b);
	}
	else
	{
		printf("%lf 小于等于 %lf\n", a, b);
	}
}

void clanguageexample11()
{
	printf("计算 int, float, double 和 char 字节大小\n");

	int intType = 1;
	float floatType = 0.0;
	double doubleType = 1.1;
	char charType[] = "a";

	printf("int 字节大小:%d\n", sizeof(intType));
	printf("float 字节大小:%d\n", sizeof(floatType));
	printf("double 字节大小:%d\n", sizeof(doubleType));
	printf("char 字节大小:%d\n", sizeof(charType));
}

void clanguageexample12()
{
	printf("交换两个浮点数的值\n");
	printf("请输入两个浮点数（空格隔开）：");

	double a, b, c;
	scanf("%lf %lf", &a, &b);

	printf("您输入的浮点数是：%lf %lf\n", a, b);

	//交换位置
	c = a;
	a = b;
	b = c;

	printf("交换后的浮点数是：%lf %lf\n", a, b);
}

void clanguageexample13()
{
	printf("判断奇数/偶数\n");
	printf("请输入一个整数：");

	int a, b;
	char *c[] = {"奇数", "偶数"}; // 声明中文数组方法
	scanf("%d", &a);

	if (a % 2 == 0)
	{
		b = 1;
	}
	else
	{
		b = 0;
	}

	printf("%d 是 %s\n", a, c[b]);
}

void clanguageexample14()
{
	printf("循环输出区间范围内的奇数/偶数\n");

	char *c[] = {"奇数", "偶数"}; // 声明中文数组方法

	for (int i = 0; i < 10; ++i)
	{
		if (i % 2 == 1)
		{
			printf("%s : %d\n", c[0], i);
		}
		else
		{
			printf("%s : %d\n", c[1], i);
		}
	}
}

void clanguageexample15()
{
	printf("判断输入的字母是元音(a、e、i、o、u)，还是辅音。\n");
	printf("请输入一个字母：");

	char a, b[] = "AEIOUaeiou";
	char *c[] = {"元音", "辅音"};
	int d = 1;

	scanf("%c", &a);

	for (unsigned int i = 0; i < strlen(b); ++i)
	{
		if (a == b[i])
		{
			d = 0;
			break;
		}
	}

	printf("%c 是 %s\n", a, c[d]);
}

void clanguageexample16()
{
	printf("我们输入三个数字，并找出最大的数。\n");
	printf("请输入三个数字（用空格隔开）：");

	double a, b, c, d;

	scanf("%lf %lf %lf", &a, &b, &c);
	printf("您输入的三个数字分别是：%lf %lf %lf\n", a, b, c);

	if (a > b)
	{
		if (a > c)
		{
			d = a;
		}
		else
		{
			d = c;
		}
	}
	else
	{
		if (b > c)
		{
			d = b;
		}
		else
		{
			d = c;
		}
	}

	printf("最大的数是：%lf\n", d);
}

void clanguageexample17()
{
	printf("求一元二次方程：ax2+bx+c=0 的根。\n");
	printf("输入三个实数a,b,c的值，且a不等于0（用空格隔开）：");

	double a, b, c, d, x1, x2;

	scanf("%lf %lf %lf", &a, &b, &c);

	if (a == 0)
	{
		printf("a 不等于 0\n");
		return;
	}

	d = sqrt(b * b - 4 * a * c);
	x1 = (-b + d) / (2 * a);
	x2 = (-b - d) / (2 * a);

	printf("方程式的根分别是：%lf %lf", x1, x2);
}

void clanguageexample18()
{
	printf("用户输入年份，判断该年份是否为闰年。\n");
	printf("输入年份：");

	int a, b;
	char *c[] = {"不是闰年", "是闰年"};

	scanf("%d", &a);

	b = ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0) ? 1 : 0;
	printf("%d %s\n", a, c[b]);
}

void clanguageexample19()
{
	printf("用户输入一个数字，判断该数字是正数还是负数或是零。\n");
	printf("请输入一个数字：");

	double a;
	int b;
	char *c[3] = {"正数", "负数", "零"};
	scanf("%lf", &a);

	if (a > 0)
	{
		b = 0;
	}
	else if (a < 0)
	{
		b = 1;
	}
	else
	{
		b = 2;
	}

	printf("这个数字是：%s\n", c[b]);
}

void clanguageexample20()
{
	printf("用户输入一个字符，判断该字符是否为一个字母。\n");
	printf("请输入一个字符：");

	char a;
	char *b[2] = {"是", "不是"};
	int c;

	scanf("%c", &a);

	c = ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) ? 0 : 1;

	printf("%c %s 字符\n", a, b[c]);
}

void clanguageexample21()
{
	printf("计算自然数的和(非负连续整数)。\n");
	printf("请输入一个数n：");

	int i, n, sum = 0;
	scanf("%d", &n);

	for (i = 0; i <= n; ++i)
	{
		sum += i;
	}

	printf("0 到 %d 的 和是：%d\n", n, sum);
}

void clanguageexample22()
{
	printf("使用嵌套 for 循环输出九九乘法口诀表。\n");

	int a, b;

	for (a = 1; a <= 9; ++a)
	{
		for (b = 1; b <= a; ++b)
		{
			printf("%d * %d = %d ", b, a, b * a);
		}
		printf("\n");
	}
}

void clanguageexample23()
{
	printf("斐波那契数列\n");
	printf("输出几项：");

	int a = 1, b = 1, c, n, i;
	scanf("%d", &n);
	printf("1 1 ");

	for (i = 0; i < n - 2; ++i)
	{
		c = a + b;
		printf("%d ", c);

		a = b;
		b = c;
	}

	printf("\n");
}

void clanguageexample24()
{
	printf("求两数的最大公约数\n");
	printf("请输入两个正整数，以空格分隔: ");

	int a, b, c, i;
	scanf("%d %d", &a, &b);
	c = a > b ? b : a;

	for (i = c; i > 0; --i)
	{
		if (b % i == 0 && a % i == 0)
		{
			printf("两数的最大公约数是：%d\n", i);
			return;
		}
	}
}

void clanguageexample25()
{
	printf("求两数最小公倍数\n");
	printf("请输入两个正整数，以空格分隔: ");

	int a, b, c, d, f, i;
	scanf("%d %d", &a, &b);

	if (a > b)
	{
		c = a; // 大
		d = b; // 小
	}
	else
	{
		c = b;
		d = a;
	}

	for (i = 1; i <= d; ++i)
	{
		f = c * i;
		if (f % d == 0)
		{
			printf("求两数最小公倍数是：%d\n", f);
			return;
		}
	}
}

void clanguageexample26()
{
	printf("阶乘：所有小于及等于该数的正整数的积，并且0的阶乘为1\n");
	printf("请输入一个数n: ");

	int n, i;
	long long factorial = 1;
	scanf("%d", &n);

	for (i = 1; i <= n; ++i)
	{
		factorial *= i;
	}

	printf("%d 的阶乘 是: %d\n", n, factorial);
}

void clanguageexample27()
{
	printf("循环输出26个字母\n");

	for (int i = 'a'; i <= 'z'; ++i)
	{
		printf("%c ", i);
	}
	printf("\n");
}

void clanguageexample28()
{
	printf("判断数字为几位数\n");
	printf("请输入一个整数：");

	long long a;
	int count = 1;
	scanf("%lld", &a);
	printf("%lld 是 ", a);

	while (a > 1)
	{
		a /= 10;
		++count;
	}

	printf("%d 位数\n", count);
}

void clanguageexample29()
{
	printf("计算一个数的 n 次方\n");
	printf("请输入基数，指数，用空格隔开：");

	int a, b, i;
	long long n = 1;

	scanf("%d %d", &a, &b);

	for (i = 1; i <= b; ++i)
	{
		n *= a;
	}

	printf("%d 的 %d次方是：%lld\n", a, b, n);
}

void clanguageexample30()
{
	printf("判断回文数\n");
	printf("请输入一个正整数：");

	int a, b, c, d = 0;

	scanf("%d", &a);

	b = a;
	// 反转数字
	while (a >= 1)
	{
		c = a % 10;
		d = d * 10 + c;
		a /= 10;
	}

	if (b == d)
	{
		printf("%d 是回文数\n", b);
	}
	else
	{
		printf("%d 不是回文数\n", b);
	}
}

void clanguageexample31()
{
	printf("判断素数\n");
	printf("请输入一个正整数（大于1）：");

	int a, b = 0, i;
	char *c[] = {"是素数", "不是素数"};

	scanf("%d", &a);

	for (i = 2; i <= a / 2; ++i)
	{
		if (a % i == 0)
		{
			b = 1;
			break;
		}
	}

	printf("%d %s\n", a, c[b]);
}

void clanguageexample32()
{
	printf("判断Armstrong数(阿姆斯壮数)\n");
	printf("请输入一个三位数：");

	int a, b, c, d = 0, e = 1;
	char *f[] = {"是Armstrong数", "不是Armstrong数"};
	scanf("%d", &a);

	b = a;
	while (a >= 1)
	{
		c = a % 10;
		d += c * c * c;
		a /= 10;
	}

	if (b == d)
		e = 0;
	else
		e = 1;

	printf("%d %s\n", b, f[e]);
}

void clanguageexample33()
{
	printf("求一个整数的所有因数\n");
	printf("请输入一个整数：");

	int a, i;
	scanf("%d", &a);

	printf("%d 的所有因数有：", a);
	for (i = 1; i <= a; ++i)
	{
		if (a % i == 0)
		{
			printf("%d ", i);
		}
	}

	printf("\n");
}

void clanguageexample34()
{
	printf("创建各类三角形图案\n");
	printf("请输入一个行，用空格隔开：");

	int h, i, j;
	scanf("%d", &h);

	for (i = 0; i <= h; ++i)
	{
		for (j = 0; j <= i; ++j)
		{
			printf("* ");
		}
		printf("\n");
	}
}

void clanguageexample35()
{
	printf("表格形式输出数据\n");
	printf("等差数列输出 10x10 矩阵格式。\n");

	int i, j;
	for (i = 2; i <= 10; ++i)
	{
		for (j = 1; j <= 10; ++j)
		{
			printf("%d ", i * j);
		}
		printf("\n");
	}
}

void clanguageexample36()
{
	printf("实现简单的计算器\n");
	printf("实现加减乘除计算\n");

	double a, c;
	char b;
	double d = 0.0;

	printf("输入操作符 (+, -, *,): ");
	scanf("%c", &b);

	printf("输入两个数字: ");
	scanf("%lf %lf", &a, &c);

	switch (b)
	{
	case '+':
		d = a + c;
		break;
	case '-':
		d = a - c;
		break;
	case '*':
		d = a * c;
		break;
	case '/':
		d = a / c;
		break;
	default:
		break;
	}

	printf("%f %c %f = %f\n", a, b, c, d);
}

// 检查素数 b=0是素数 b=1不是素数
int CheckPrime(int a)
{

	int b = 0, i;
	for (i = 2; i <= a / 2; ++i)
	{
		if (a % i == 0)
		{
			b = 1;
			break;
		}
	}

	return b;
}

void clanguageexample37()
{
	printf("计算一个数是否可为两个素数之和\n");
	printf("请输入一个正整数a(a>2):");

	int a, b, i;
	scanf("%d", &a);

	for (i = 2; i <= a / 2; ++i)
	{
		if (!CheckPrime(i))
		{
			b = a - i;
			if (!CheckPrime(b))
			{
				printf("%d 可分解成两个素数：%d %d\n", a, i, b);
				return;
			}
		}
	}

	printf("%d 不可分解成两个素数\n", a);
}

void clanguageexample38()
{
	printf("二进制转换为十进制\n");
	printf("请输入一个二进制数:");

	long long a, d;
	int c = 0;
	double b = 0.0;

	scanf("%lld", &a);
	d = a;

	while (a > 0)
	{
		b += (a % 10) * pow(2.0, c);
		++c;
		a /= 10;
	}

	printf("二进制数 %lld 的十进制数是：%lf\n", d, b);

	printf("十进制转换为二进制\n");
	printf("请输入一个十进制数:");

	int e, f, h = 1;
	long long g = 0;

	scanf("%d", &e);
	f = e;
	while (e > 0)
	{
		g += (e % 2) * h;
		h *= 10;
		e /= 2;
	}

	printf("十进制数 %d 的二进制数是：%lld\n", f, g);
}

void clanguageexample39()
{
	printf("十进制转换为八进制\n");
	printf("请输入一个十进制数:");

	int a, b, c = 0, d = 1;

	scanf("%d", &a);
	b = a;

	while (a > 0)
	{
		c += a % 8 * d;
		d *= 10;
		a /= 8;
	}

	printf("十进制数 %d 的八进制数是：%d\n", b, c);

	printf("八进制转换为十进制\n");
	printf("请输入一个八进制数:");

	int e, f, g = 0, h = 1;

	scanf("%d", &e);
	f = e;

	while (e > 0)
	{
		g += (e % 10) * h;
		h *= 8;
		e /= 10;
	}

	printf("八进制数 %d 的十进制数是：%d\n", f, g);
}

void clanguageexample40()
{
	// 未完成 未完成 未完成 未完成

	printf("二进制转换为八进制\n");
	printf("请输入一个二进制数:");

	// 先转换成十进制
	long long a, d;
	int c = 0;
	double b = 0.0;

	scanf("%lld", &a);
	d = a;

	while (a > 0)
	{
		b += (a % 10) * pow(2.0, c);
		++c;
		a /= 10;
	}

	// 再转换成八进制
	int e = (int)b, g = 0, h = 1;

	while (e > 0)
	{
		g += e % 8 * h;
		h *= 10;
		e /= 8;
	}

	printf("二进制数 %lld 的八进制数是：%d\n", d, g);

	// 反正同理 （八进制转换为二进制）
}

void reverseSentence()
{
	char c;
	scanf("%c", &c);

	if (c != '\n')
	{
		reverseSentence();
		printf("%c\n", c);
	}
}

void clanguageexample41()
{
	printf("使用递归来翻转字符串\n");
	printf("请输入一个字符串：");

	reverseSentence();
}

void clanguageexample42()
{
	printf("计算数组元素平均值\n");
	int a[5] = {8, 6, 7, 3, 9};

	int b = 0, i;
	for (i = 0; i < 5; ++i)
	{
		//b += a[i]; // 索引取值
		b += *(a + i); // 指针取值
		printf("%d ", *(a + i));
	}

	printf("\n平均值是：%.3f\n", (float)b / 5);
}

void clanguageexample43()
{
	printf("输出数组\n");

	int a[10] = {1, 5, 6, 8, 9};
	int i = 0;

	for (; i < 10; ++i)
	{
		printf("%d ", *(a + i));
	}
}

void clanguageexample44()
{
	printf("计算数组元素之和\n");

	int a[3] = {1, 2, 3};
	int b = 0, i = 0;

	for (; i < 3; ++i)
	{
		b += *(a + i);
		printf("%d ", *(a + i));
	}

	printf("数组元素之和是：%d\n", b);
}

void clanguageexample45()
{
	printf("查找数组中最大的元素值\n");
	printf("请输入元素个数[1~100]：");

	double a[100];
	int n, i;

	scanf("%d", &n);
	// 收集数组元素
	for (i = 0; i < n; ++i)
	{
		printf("请输入第%d数值：", i);
		scanf("%lf", &a[i]);
	}

	// 比较数组最大值
	for (i = 0; i < n; ++i)
	{
		if (a[0] < a[i])
			a[0] = a[i];
	}

	printf("最大的元素值是：%lf\n", a[0]);
}

void clanguageexample46()
{

	printf("查找数组中最小的元素\n");
	printf("请输入元素个数[1~100]：");

	double a[100];
	int n, i;

	scanf("%d", &n);
	// 收集数组元素
	for (i = 0; i < n; ++i)
	{
		printf("请输入第%d数值：", i);
		scanf("%lf", &a[i]);
	}

	// 比较数组最大值
	for (i = 0; i < n; ++i)
	{
		if (a[0] > a[i])
			a[0] = a[i];
	}

	printf("最小的元素值是：%lf\n", a[0]);
}

void clanguageexample47()
{
	printf("将一个数组拆分为两个数组，一个为奇数数组，一个为偶数数组\n");
	int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9}, b[10], c[10];
	int i, j = 0, k = 0;

	printf("原始数组:");
	for (i = 0; i < 10; ++i)
	{
		printf("%d ", a[i]);
	}
	printf("\n");

	for (i = 0; i < 10; ++i)
	{
		if (a[i] % 2 == 0)
		{
			b[j] = a[i];
			++j;
		}
		else
		{
			c[k] = a[i];
			++k;
		}
	}

	printf("奇数数组:");
	for (i = 0; i < k; ++i)
	{
		printf("%d ", c[i]);
	}
	printf("\n");

	printf("偶数数组:");
	for (i = 0; i < j; ++i)
	{
		printf("%d ", b[i]);
	}
	printf("\n");
}

void clanguageexample48()
{
	printf("将一个数组复制给另外一个数组\n");
	int a[5] = {1, 2, 3, 4, 5}, b[5], i;

	printf("原始数组:");
	for (i = 0; i < 5; ++i)
	{
		printf("%d ", a[i]);
	}
	printf("\n");

	// 拷贝数组
	for (i = 0; i < 5; ++i)
	{
		*(b + i) = *(a + i);
	}

	printf("拷贝的数组:");
	for (i = 0; i < 5; ++i)
	{
		printf("%d ", b[i]);
	}
	printf("\n");
}

void clanguageexample49()
{
	printf("计算标准偏差\n");
	int a[10] = {12, 58, 45, 56, 78, 14, 54, 25, 36, 36}, i;

	double b = 0, c, d = 0, f;

	// 一、得到平均值
	for (i = 0; i < 10; ++i)
	{
		b += a[i];
	}
	c = b / 10;

	// 二、得到 （每个样本数据 减去 总体全部数据的平均值）的各个数值的平方相加
	for (i = 0; i < 10; ++i)
	{
		d += pow((a[i] - c), 2);
	}

	// 三、把步骤二的结果除以 n （“n”指总体数目）。
	d = d / 10;

	// 四、从步骤三所得的数值之平方根就是总体的标准偏差。
	f = sqrt(d);

	printf("标准偏差:%lf\n", f);
}

void clanguageexample50()
{
	printf("使用多维数组将两个矩阵相加。\n");

	int a[100][100], b[100][100], c[100][100], h, l, i, j;
	printf("请输入行数[1~100]：");
	scanf("%d", &h);

	printf("请输入列数[1~100]：");
	scanf("%d", &l);

	printf("请输入第一个多维数组：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("请输入a[%d][%d]的值：", i, j);
			scanf("%d", &a[i][j]);
		}
	}

	printf("第一个多维数组是：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	printf("请输入第二个多维数组：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("请输入b[%d][%d]的值：", i, j);
			scanf("%d", &b[i][j]);
		}
	}

	printf("第二个多维数组是：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("%d ", b[i][j]);
		}
		printf("\n");
	}

	printf("多维数组相加：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			c[i][j] = a[i][j] + b[i][j];
		}
	}

	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("%d ", c[i][j]);
		}
		printf("\n");
	}
}

void clanguageexample51()
{
	printf("矩阵转换。\n");

	int a[100][100], b[100][100], h, l, i, j;
	printf("请输入行数[1~100]：");
	scanf("%d", &h);

	printf("请输入列数[1~100]：");
	scanf("%d", &l);

	printf("请输入多维数组：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("请输入a[%d][%d]的值：", i, j);
			scanf("%d", &a[i][j]);
		}
	}

	printf("多维数组是：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	// 转换
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			b[i][j] = a[i][j];
		}
	}

	printf("转换的多维数组是：\n");
	for (i = 0; i < h; ++i)
	{
		for (j = 0; j < l; ++j)
		{
			printf("%d ", b[i][j]);
		}
		printf("\n");
	}
}

void clanguageexample52()
{
	printf("使用指针访问数组元素\n");

	int a[5] = {1, 2, 3}, i = 0;

	for (i = 0; i < 5; ++i)
	{
		printf("%d ", *(a + i));
	}
}

void clanguageexample53()
{
	printf("a、b、c 三个变量，通过引用按顺序循环替换他们的值。\n");

	int a, b, c, d;
	int *e, *f, *g;

	printf("请输入a：");
	scanf("%d", &a);

	printf("请输入b：");
	scanf("%d", &b);

	printf("请输入c：");
	scanf("%d", &c);

	// 交换前值
	e = &a;
	f = &b;
	g = &c;

	printf("交换前的值 a: %d, b: %d, c: %d\n", *e, *f, *g);

	// 交换前
	d = *e;
	*e = *f;
	*f = *g;
	*g = d;

	printf("交换后的值 a: %d, b: %d, c: %d\n", *e, *f, *g);
}

void clanguageexample54()
{
	printf("通过用户输入指定的数值，来判断最大值。\n");

	int a, i;
	float *c;

	printf("输入的元素个数：");
	scanf("%d", &a);

	// 为c分配内存
	c = (float *)calloc(a, sizeof(float));
	if (c == NULL)
	{
		printf("Error!!! 内存没有分配。\n");
		exit(0);
	}

	// 向c中添加数据
	for (i = 0; i < a; ++i)
	{
		printf("请输入第%d个元素：", i);
		scanf("%f", c + i);
	}

	// 得到最大值
	for (i = 0; i < a; ++i)
	{
		if (*c < *(c + i))
		{
			*c = *(c + i);
		}
	}

	printf("最大值是：%f", *c);
	free(c); // 释放内存
}

void clanguageexample55()
{
	printf("删除字符串中的特殊字符。\n");

	char ch[100];
	int i = 0, j = 0;

	printf("请输入一个字符串：");
	gets(ch);

	for (i = 0; ch[i] != '\0'; ++i)
	{
		// 不是英文字母
		while (!((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')))
		{

			// 删除该字符 所有字符前移一个单位
			for (j = i; ch[j] != '\0'; ++j)
			{
				ch[j] = ch[j + 1];
			}

			// 结束符前移
			ch[j] = '\0';
		}
	}

	printf("过滤后的字符串:");
	puts(ch);
}

void clanguageexample56()
{
	printf("使用 strcat() 连接两个字符串.\n");
	printf("输入第一个字符串：");

	char a[100], b[100];
	scanf("%s", a);

	printf("输入第二个字符串：");
	scanf("%s", b);

	strcat(a, b);
	printf("字符串a:%s\n", a);
	printf("字符串b:%s\n", b);
}

void clanguageexample57()
{
	printf("计算字符串长度。\n");
	printf("请输入一个字符串：");

	char a[100];
	int i;

	scanf("%s", a);

	for (i = 0; a[i] != '\0'; ++i)
		;

	printf("字符串长度：%d\n", i);
}

void clanguageexample58()
{
	printf("查找字符在字符串中的起始位置(索引值从 0 开始)。\n");
	printf("请输入一个字符串：");

	char a[100], b;
	int j = -1;
	unsigned int i;

	gets(a);

	printf("请输入需要查找的字符串：");
	scanf("%c", &b);

	for (i = 0; i < strlen(a); ++i)
	{
		if (a[i] == b)
		{
			j = i;
			break;
		}
	}

	printf("字符串%c在字符串%s中的位置是%d\n", b, a, j);
}

void clanguageexample59()
{
	printf("计算字符串中的元音、辅音、数字、空白符。\n");
	printf("请输入一个字符串：");

	char a[150];
	int b, c, d, e, f, i;
	b = c = d = e = f = 0;

	gets(a);

	for (i = 0; a[i] != '\0'; ++i)
	{
		if (a[i] == ' ')
		{
			++e;
		}
		else if (a[i] >= '0' && a[i] <= '9')
		{
			++d;
		}
		else if (a[i] == 'a' || a[i] == 'A' ||
				 a[i] == 'e' || a[i] == 'E' ||
				 a[i] == 'i' || a[i] == 'I' ||
				 a[i] == 'o' || a[i] == 'O' ||
				 a[i] == 'u' || a[i] == 'U')
		{
			++b;
		}
		else if ((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z'))
		{
			++c;
		}
		else
		{
			++f;
		}
	}

	printf("元音：%d\n辅音：%d\n数字：%d\n空白符：%d\n其他字符：%d\n", b, c, d, e, f);
}

void clanguageexample60()
{
	printf("将一个变量的字符串复制到另外一个变量中。\n");
	printf("请输入一个字符串：");

	char a[100], b[100];
	int unsigned i;

	scanf("%[^\n]", a);
	printf("输入的字符串：%s\n", a);

	// 复制字符串
	for (i = 0; i < strlen(a); ++i)
	{
		b[i] = a[i];
	}

	b[i] = '\0';

	//strcpy(b, a); // 用函数复制

	printf("复制的字符串：%s\n", b);
}

void clanguageexample61()
{
	printf("字符串排序 -- 按字典顺序排序\n");
	printf("请输入5个字符串\n");

	int i, j;
	char a[5][50], b[50];

	for (i = 0; i < 5; ++i)
	{
		scanf("%[^\n]", a[i]);
	}

	// 排序
	for (i = 0; i < 5; ++i)
	{
		for (j = i + 1; j < 5; ++j)
		{
			if (strcmp(a[i], a[j]) > 0)
			{
				strcpy(b, a[i]);
				strcpy(a[i], a[j]);
				strcpy(a[j], b);
			}
		}
	}

	printf("\n排序后的字符串\n");
	for (i = 0; i < 5; ++i)
	{
		printf("%s\n", a[i]);
	}
}

void clanguageexample62()
{
	printf("使用结构体（struct）存储学生信息。\n");

	struct student
	{
		char name[50];
		int roll;
		float marks;
	} clanguageexample62_s;

	printf("名字：");
	scanf("%[^\n]", clanguageexample62_s.name);

	printf("编号：");
	scanf("%d", &clanguageexample62_s.roll);

	printf("成绩：");
	scanf("%f", &clanguageexample62_s.marks);

	printf("学生名字是：%s\n学生编号是：%d\n学生成绩是：%f\n", clanguageexample62_s.name, clanguageexample62_s.roll, clanguageexample62_s.marks);
}

// 必须这么写
typedef struct
{
	float real;
	float imag;
} clanguageexample63_complex;

clanguageexample63_complex clanguageexample63_add(clanguageexample63_complex n1, clanguageexample63_complex n2)
{
	clanguageexample63_complex t;
	t.real = n1.real + n2.real;
	t.imag = n1.imag + n2.imag;
	return t;
}

void clanguageexample63()
{
	printf("复数相加\n");

	clanguageexample63_complex n1, n2, t;

	printf("第一个复数：\n");
	printf("请输入实数与虚数部分：");
	scanf("%f %f", &n1.real, &n1.imag);

	printf("第二个复数：\n");
	printf("请输入实数与虚数部分：");
	scanf("%f %f", &n2.real, &n2.imag);

	t = clanguageexample63_add(n1, n2);
	printf("复数之和是：%.1f + %.1fi\n", t.real, t.imag);
}
// 必须这么写

typedef struct
{
	int seconds;
	int minutes;
	int hours;
} clanguageexample64_TIME;

// 开始时间 结束时间
clanguageexample64_TIME differenceBetweenTimePeriod(clanguageexample64_TIME t1, clanguageexample64_TIME t2)
{
	clanguageexample64_TIME t;

	if (t2.seconds < t1.seconds)
	{
		t.seconds = t2.seconds + 60 - t1.seconds;
		--t2.minutes;
	}
	else
	{
		t.seconds = t2.seconds - t1.seconds;
	}

	if (t2.minutes < t1.minutes)
	{
		t.minutes = t2.minutes + 60 - t1.minutes;
		--t2.hours;
	}
	else
	{
		t.minutes = t2.minutes - t1.minutes;
	}

	t.hours = t2.hours - t1.hours;

	return t;
}

void clanguageexample64()
{
	printf("计算两个时间段的差值\n");

	clanguageexample64_TIME t, t1, t2;

	printf("请输入开始时间 时 分 秒：");
	scanf("%d %d %d", &t1.hours, &t1.minutes, &t1.seconds);

	printf("请输入终止时间 时 分 秒：");
	scanf("%d %d %d", &t2.hours, &t2.minutes, &t2.seconds);

	t = differenceBetweenTimePeriod(t2, t1);
	printf("终止时间 - 开始时间：\n");
	printf("%d:%d:%d - %d:%d:%d = %d:%d:%d\n", t1.hours, t1.minutes, t1.seconds, t2.hours, t2.minutes, t2.seconds, t.hours, t.minutes, t.seconds);
}

void clanguageexample65()
{
	printf("将字符串写入文件\n");

	char sentence[1000];
	FILE *fptr;

	fptr = fopen("runoob.txt", "w");
	if (fptr == NULL)
	{
		printf("Error!");
		exit(1);
	}

	printf("输入字符串:\n");
	fgets(sentence, (sizeof sentence / sizeof sentence[0]), stdin);

	fprintf(fptr, "%s", sentence);
	fclose(fptr);
}

void clanguageexample66()
{
	printf("从文件中读取一行\n");

	char c[1000];
	FILE *fptr;

	if ((fptr = fopen("runoob.txt", "r")) == NULL)
	{
		printf("Error! opening file");
		// 文件指针返回 NULL 则退出
		exit(1);
	}

	// 读取文本，直到碰到新的一行开始
	fscanf(fptr, "%[^\n]", c);

	printf("读取内容:\n%s", c);
	fclose(fptr);
}

void clanguageexample67()
{
	printf("输出当前文件执行代码，__FILE__ 为当前执行的文件常量\n");
	FILE *fp;
    char c;
    fp = fopen(__FILE__,"r");
    do {
         c = getc(fp);
         putchar(c);
    }
    while(c != EOF);
    fclose(fp);
}

void clanguageexample68()
{
	printf("约瑟夫生者死者小游戏\n");
	printf("30 个人在一条船上，超载，需要 15 人下船\n");
	printf("于是人们排成一队，排队的位置即为他们的编号。\n");
	printf("报数，从 1 开始，数到 9 的人下船。\n");
	printf("如此循环，直到船上仅剩 15 人为止，问都有哪些编号的人下船了呢？\n");

	int a = 30, i = 0, j = 0;
	int e[30] = {0};

	while (a > 15)
	{
		++i; // 计数
		++j; // 下标

		if (j > 29)
			j = 0;

		while (e[j])
		{
			++j;
		}

		if (i == 9)
		{
			i = 0;
			e[j] = 1;
			--a; // 减少人数
			printf("第%d号下船\n", j);
		}
	}
}

void CLanguageExample()
{
	//Sleep(1000); // 睡眠函数
	//clanguageexample1();
	//clanguageexample2();
	//clanguageexampl3();
	//clanguageexample4();
	//clanguageexample5();
	//clanguageexample6();
	//clanguageexample7();
	//clanguageexample8();
	//clanguageexample9();
	//clanguageexample10();
	//clanguageexample11();
	//clanguageexample12();
	//clanguageexample13();
	//clanguageexample14();
	//clanguageexample15();
	//clanguageexample16();
	//clanguageexample17();
	//clanguageexample18();
	//clanguageexample19();
	//clanguageexample20();
	//clanguageexample21();
	//clanguageexample22();
	//clanguageexample23();
	//clanguageexample24();
	//clanguageexample25();
	//clanguageexample26();
	//clanguageexample27();
	//clanguageexample28();
	//clanguageexample29();
	//clanguageexample30();
	//clanguageexample31();
	//clanguageexample32();
	//clanguageexample33();
	//clanguageexample34();
	//clanguageexample35();
	// clanguageexample36();
	//clanguageexample37();
	//clanguageexample38();
	//clanguageexample39();
	//clanguageexample40();
	//clanguageexample41();
	//clanguageexample42();
	//clanguageexample43();
	//clanguageexample44();
	//clanguageexample45();
	//clanguageexample46();
	//clanguageexample47();
	//clanguageexample48();
	//clanguageexample49();
	//clanguageexample50();
	//clanguageexample51();
	//clanguageexample52();
	//clanguageexample53();
	//clanguageexample54();
	//clanguageexample55();
	//clanguageexample56();
	//clanguageexample57();
	//clanguageexample58();
	//clanguageexample59();
	//clanguageexample60();
	//clanguageexample61();
	//clanguageexample62();
	clanguageexample63();
	//clanguageexample64();
	//clanguageexample65();
	//clanguageexample66();
	//clanguageexample67();
	// clanguageexample68();
}